package cc.wfu.infrastructure.persistent.po;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;

import lombok.*;

/**
 * <p>
 * 商品 - 展示表
 * </p>
 *
 * @author lijiaqiang@ljq1024.cc
 * @since 2024-05-23
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TableName("product")
public class Product implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 数据库自增ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 商品ID
     */
    @TableField("product_id")
    private Long productId;

    /**
     * 商品sku
     */
    @TableField("sku")
    private Long sku;

    /**
     * 商品标题 - 商品名
     */
    @TableField("product_title")
    private String productTitle;

    /**
     * 商品副标题
     */
    @TableField("product_sub_title")
    private String productSubTitle;

    /**
     * 商品数量
     */
    @TableField("product_count")
    private Integer productCount;

    /**
     * 商品剩余数量
     */
    @TableField("product_count_surplus")
    private Integer productCountSurplus;

    /**
     * 商品价格
     */
    @TableField("product_price")
    private BigDecimal productPrice;

    /**
     * 商品类型
     */
    @TableField("product_type")
    private String productType;

    /**
     * 商品详细介绍
     */
    @TableField("product_detail")
    private String productDetail;

    /**
     * 商品封面
     */
    @TableField("product_cover")
    private String productCover;

    /**
     * 商品图片 - 最多10张, 存url - 用,隔开
     */
    @TableField("product_covers")
    private String productCovers;

    /**
     * 开始时间
     */
    @TableField("begin_date_time")
    private Date beginDateTime;

    /**
     * 结束时间
     */
    @TableField("end_date_time")
    private Date endDateTime;

    /**
     * 商品所属商家 - 假数据
     */
    @TableField("product_merchant")
    private String productMerchant;

    /**
     * 排序字段
     */
    @TableField("sort")
    private Integer sort;

    /**
     * 商品账号状态，1：可用，0：下架...
     */
    @TableField("state")
    private Integer state;

    /**
     * 创建时间
     */
    @TableField("create_time")
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @TableField("update_time")
    private LocalDateTime updateTime;


}
